//
// 树的双亲表示法
// Created by 麻再挺 on 2021/12/15.
//

#ifndef DATA_STRUCTURE_C_PARENT_TREE_H
#define DATA_STRUCTURE_C_PARENT_TREE_H
#include <stdio.h>
#include "./../constant.h"
// 树中结点的最大数量
#define PARENT_TREE_MAX_SIZE 100

// 树结构中的数据类型
typedef char PtElemType;

// 节点
typedef struct PtNode {
    // 数据
    PtElemType data;
    // 父节点
    int parent;
} PtNode;

// 数结构
typedef struct {
    // 节点
    PtNode node[PARENT_TREE_MAX_SIZE];
    // 节点个数
    int n;
} PtTree;

/**
 * 初始化
 * @param t 树
 */
Status PtTree_Init(PtTree *t);

/**
 * 查找元素
 * @param t 树
 * @param e 元素
 */
void PtTree_Find_Parent(PtTree *t, PtElemType e);

/**
 * 打印
 * @param t 树
 */
void PtTree_Print(PtTree *t);
#endif //DATA_STRUCTURE_C_PARENT_TREE_H
